package com.example.club.test.flow.demo1

import android.os.Bundle
import android.view.View
import androidx.activity.enableEdgeToEdge
import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import com.example.club.R
import com.example.lib_common.utils.ToastUtils
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.Job
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
//安卓中页面中有很多按钮，每个按钮都会有请求，用户疯狂点击，怎么处理这个问题，想要处理最后一个点击，之前的点击不处理
class DebounceActivity : AppCompatActivity() {

    private var debounceJob: Job? = null
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        enableEdgeToEdge()
        setContentView(R.layout.activity_debounce)
        ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main)) { v, insets ->
            val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars())
            v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom)
            insets
        }
    }

    fun onclick1(view: View) {
        debounceJob?.cancel() // 取消之前的点击处理

        debounceJob = CoroutineScope(Dispatchers.Main).launch {
            delay(500) // 500毫秒延迟
            // 执行实际的点击处理逻辑
            ToastUtils.showLong(this@DebounceActivity,  "点击了按钮1")
        }
    }
    fun onclick2(view: View) {
        debounceJob?.cancel() // 取消之前的点击处理

        debounceJob = CoroutineScope(Dispatchers.Main).launch {
            delay(500) // 500毫秒延迟
            // 执行实际的点击处理逻辑
            ToastUtils.showLong(this@DebounceActivity,  "点击了按钮2")
        }
    }
    fun onclick3(view: View) {
        debounceJob?.cancel() // 取消之前的点击处理

        debounceJob = CoroutineScope(Dispatchers.Main).launch {
            delay(500) // 500毫秒延迟
            // 执行实际的点击处理逻辑
            ToastUtils.showLong(this@DebounceActivity,  "点击了按钮3")
        }
    }
    fun onclick4(view: View) {
        debounceJob?.cancel() // 取消之前的点击处理

        debounceJob = CoroutineScope(Dispatchers.Main).launch {
            delay(500) // 500毫秒延迟
            // 执行实际的点击处理逻辑
            ToastUtils.showLong(this@DebounceActivity,  "点击了按钮4")
        }
    }
    fun onclick5(view: View) {
        debounceJob?.cancel() // 取消之前的点击处理

        debounceJob = CoroutineScope(Dispatchers.Main).launch {
            delay(500) // 500毫秒延迟
            // 执行实际的点击处理逻辑
            ToastUtils.showLong(this@DebounceActivity,  "点击了按钮5")
        }
    }
    fun onclick6(view: View) {
        debounceJob?.cancel() // 取消之前的点击处理

        debounceJob = CoroutineScope(Dispatchers.Main).launch {
            delay(500) // 500毫秒延迟
            // 执行实际的点击处理逻辑
            ToastUtils.showLong(this@DebounceActivity,  "点击了按钮6")
        }
    }
    fun onclic7(view: View) {
        debounceJob?.cancel() // 取消之前的点击处理

        debounceJob = CoroutineScope(Dispatchers.Main).launch {
            delay(500) // 500毫秒延迟
            // 执行实际的点击处理逻辑
            ToastUtils.showLong(this@DebounceActivity,  "点击了按钮7")
        }
    }
    fun onclick8(view: View) {
        debounceJob?.cancel() // 取消之前的点击处理

        debounceJob = CoroutineScope(Dispatchers.Main).launch {
            delay(500) // 500毫秒延迟
            // 执行实际的点击处理逻辑
            ToastUtils.showLong(this@DebounceActivity,  "点击了按钮8")
        }
    }
}